package infra

import (
	"gopkg.in/yaml.v3"
	"log"
	"os"
)

// OSSConfig 定义 OSS 配置结构体
type OSSConfig struct {
	Type         string `yaml:"type"`
	Endpoint     string `yaml:"endpoint"`
	Bucket       string `yaml:"bucket"`
	AccessKey    string `yaml:"access_key"`
	AccessSecret string `yaml:"access_secret"`
}

// ConnectConfig 定义连接配置结构体
type ConnectConfig struct {
	URL string `yaml:"url"`
}

// Config 定义总的配置结构体
type Config struct {
	OSS     OSSConfig     `yaml:"oss"`
	Connect ConnectConfig `yaml:"connect"`
}

var appConfig Config

// InitConfig 初始化配置
func InitConfig(configFile string) {
	data, err := os.ReadFile(configFile)
	if err != nil {
		log.Fatalf("Failed to read file: %v", err)
	}
	err = yaml.Unmarshal(data, &appConfig)
	if err != nil {
		log.Fatalf("Failed to parse YAML: %v", err)
	}
}

// GetConfig 获取配置信息
func GetConfig() Config {
	return appConfig
}
